home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 7 / Apprentice-Release7.iso / Environments / Clean 1.2.4 / Small Demos / sieve.icl < prev    next >
Encoding:
Text File  |  1995-03-10  |  356 b   |  17 lines  |  [TEXT/3PRM]

  1. module sieve
  2.  
  3. //    The standard Sieve of Eratosthenes.
  4.  
  5. import StdEnv
  6.      
  7. NrOfPrimes :== 1000 
  8.     
  9. //    The sieve algorithm: generate an infinite list of all primes.
  10.  
  11. Start = sieve [2..]
  12. where                                  
  13.     sieve [prime:rest] = [prime : sieve (filter prime rest)]
  14.     
  15.     filter p [h:tl]    | h mod p == 0    = filter p tl
  16.                                     = [h : filter p tl]
  17.     filter p []                        = []